Send トレイトと Sync トレイト
アイテムの 所有権 は、スレッドからスレッドへ渡すことができる 言い換えると、&T がスレッド間で転送可能であることを示す
これらのトレイトは 自動トレイト で、新しい型の構成要素がすべて Send / Sync を実装していれば、コンパイラが自動的に実装してくれる ほとんどの安全な型は実装しているので、実装していない型(impl !Sync for ...)に注目すると良い
Send を実装していない型は、1 つのスレッド内でしか使えない
Sync を実装していない型は、複数のスレッドから 不変参照 を通じて安全にアクセスできない e.g. Cell<T> / RefCell<T>: 同期せずに 内部可変性 を提供する マルチスレッドで動作させたい場合は、Mutex<T> / RwLock<T> を用いて
また、*const T や *mut T などの 生ポインタ を表す型も Send と Sync を実装していない